package com.example.demo.model;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 *
 * </p>
 *
 * @author Webgasd
 * @since 2021-04-26
 */
@TableName("sys_acl")
@ApiModel(value = "/demo/sys-acl/saveAclModule和/demo/sys-acl/saveAclModule/updateAclModule，权限模块的类")
public class SysAcl extends Model {

    private static final long serialVersionUID = 1L;

    /**
     * 权限id
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "权限id", dataType = "Integer", example = "0")
    private Integer id;

    /**
     * 权限码
     */
    @TableField("code")
    @ApiModelProperty(value = "权限码", dataType = "String", example = "001")
    private String code;

    /**
     * 权限名称
     */
    @TableField("name")
    @ApiModelProperty(value = "权限名称", dataType = "String", example = "进入功能")
    private String name;

    /**
     * 权限所在的权限模块id
     */
    @TableField("acl_module_id")
    @ApiModelProperty(value = "权限所在的权限模块id", dataType = "Integer", example = "0")
    private Integer aclModuleId;

    /**
     * 请求的url, 可以填正则表达式
     */
    @TableField("url")
    @ApiModelProperty(value = "请求的url, 可以填正则表达式", dataType = "String", example = "/get/enterprise")
    private String url;

    /**
     * 类型，1：菜单，2：按钮，3：其他
     */
    @TableField("type")
    @ApiModelProperty(value = "类型，1：菜单，2：按钮，3：其他", dataType = "Integer", example = "1")
    private Integer type;

    /**
     * 状态，1：正常，0：冻结
     */
    @TableField("status")
    @ApiModelProperty(value = "状态，1：正常，0：冻结", dataType = "Integer", example = "1")
    private Integer status;

    /**
     * 权限在当前模块下的顺序，由小到大
     */
    @TableField("seq")
    @ApiModelProperty(value = "权限在当前模块下的顺序，由小到大", dataType = "Integer", example = "1")
    private Integer seq;

    @TableField("acl_level")
    @ApiModelProperty(value = "权限等级", dataType = "Integer", example = "1")
    private Integer aclLevel;

    /**
     * 备注
     */
    @TableField("remark")
    @ApiModelProperty(value = "备注", dataType = "String", example = "智慧市场")
    private String remark;

    /**
     * 操作者
     */
    @TableField("operator")
    @ApiModelProperty(value = "操作人", dataType = "String", example = "admin")
    private String operator;

    /**
     * 最后一次更新时间
     */
    @TableField("operate_time")
    @ApiModelProperty(value = "操作时间", dataType = "Date", example = "2021-05-10 12:00:00")
    private Date operateTime;

    /**
     * 最后一个更新者的ip地址
     */
    @TableField("operate_ip")
    @ApiModelProperty(value = "操作人IP", dataType = "String", example = "127.0.0.1")
    private String operateIp;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAclModuleId() {
        return aclModuleId;
    }

    public void setAclModuleId(Integer aclModuleId) {
        this.aclModuleId = aclModuleId;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getSeq() {
        return seq;
    }

    public void setSeq(Integer seq) {
        this.seq = seq;
    }

    public Integer getAclLevel() {
        return aclLevel;
    }

    public void setAclLevel(Integer aclLevel) {
        this.aclLevel = aclLevel;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public Date getOperateTime() {
        return operateTime;
    }

    public void setOperateTime(Date operateTime) {
        this.operateTime = operateTime;
    }

    public String getOperateIp() {
        return operateIp;
    }

    public void setOperateIp(String operateIp) {
        this.operateIp = operateIp;
    }

    @Override
    public String toString() {
        return "SysAcl{" +
                "id=" + id +
                ", code=" + code +
                ", name=" + name +
                ", aclModuleId=" + aclModuleId +
                ", url=" + url +
                ", type=" + type +
                ", status=" + status +
                ", seq=" + seq +
                ", aclLevel=" + aclLevel +
                ", remark=" + remark +
                ", operator=" + operator +
                ", operateTime=" + operateTime +
                ", operateIp=" + operateIp +
                "}";
    }
}
